package com.zcxy360.sandtable.domain;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface CourseMapper {

//	
	Course selectByPrimaryKeyWithCascade(Integer courseId);
	List<Course> listWithExtra(@Param("course") Course course,@Param("key") String key,@Param("orderByClause") String orderByClause);
	List<Course> listForCalendar(@Param("userId") Integer userId,@Param("orgId") Integer orgId, @Param("date") Date date, @Param("orderByClause") String orderByClause);
	List<Course> listForJoinWithExtra(@Param("userId") Integer userId,@Param("key") String key,@Param("orderByClause") String orderByClause);
	List<Course> listForStudyWithExtra(@Param("userId") Integer userId,@Param("type") Integer type,@Param("orderByClause") String orderByClause);
	int deleteBatch(int[] courseIds);
	int clone(Course course);
	List<String> checkByExistsPhones(List<String> existsPhones);
	void end(Integer courseId);
//
	
    long countByExample(CourseExample example);

    int deleteByExample(CourseExample example);

    int deleteByPrimaryKey(Integer courseId);

    int insert(Course record);

    int insertSelective(Course record);

    List<Course> selectByExample(CourseExample example);

    Course selectByPrimaryKey(Integer courseId);

    int updateByExampleSelective(@Param("record") Course record, @Param("example") CourseExample example);

    int updateByExample(@Param("record") Course record, @Param("example") CourseExample example);

    int updateByPrimaryKeySelective(Course record);

    int updateByPrimaryKey(Course record);

}